#ifndef ALIBELCD_h
	#define ALIBELCD_h
	
	#include <Arduino.h>
	#include <SoftwareSerial.h>

	#define	LCD_RX_PIN						53
	#define LCD_TX_PIN						50

	#define LCD_CMD_BL_ON					17
	#define LCD_CMD_BL_OFF					18

	#define LCD_CMD_DISP_OFF				21
	#define LCD_CMD_DISP_ON_NO_CURSOR		22
	#define LCD_CMD_DISP_ON_BLINK_CURSOR	22

	#define LCD_CMD_CLEAR_SCREEN			12

	#define LCD_CMD_LINE_FEED				10
	#define LCD_CMD_CARRIAGE_RETURN			13

	#define LCD_CMD_BACKSPACE				8
	#define LCD_CMD_NEXT_SPACE				9

	#define LCD_CMD_R1C1					128
	#define LCD_CMD_R2C1					148

	#define LCD_BAUDRATE					19200

	class ALIBELCD{
	public:
		ALIBELCD();
		bool backlightOn();
		bool backlightOff();
		bool clearScreen();
		bool displayOff();
		bool displayOnNoCursor();
		bool displayOnBlinkingCursor();
		bool lineFeed();
		bool carriageReturn();
		bool moveCursorLeft();
		bool moveCursorRight();
		bool writeTextAtRow1(String textToWrite);
		bool writeTextAtRow2(String textToWrite);
	
	private:
		bool _moveToRow1Col1();
		bool _moveToRow2Col1();
		bool _writeTextToLCD(String textToWrite);
};
#endif